---
id: 6554a88d5af937226f4a9121
title: Крок 65
challengeType: 20
dashedName: step-65
---

# --description--

Метод `.index()` ідентичний методу `.find()`, але він створює виняток `ValueError`, якщо не вдається знайти підрядок.

`ValueError` — це вбудований виняток, який виникає, якщо до функції передано аргумент правильного типу, але неприйнятного значення.

Оголосіть змінну під назвою `offset` після збільшення `key_index`. Знайдіть індекс, який `key_char` має в `alphabet` та призначте його до `offset`. Використайте `.index()`, щоб знайти індекс.

# --hints--

Оголосіть змінну під назвою `offset`.

```js
const commentless_code = __helpers.python.removeComments(code);
const {block_body} = __helpers.python.getBlock(commentless_code, /else/);
assert(block_body.match(/offset\s*=/));
```

Змінна `offset` має зберігати значення `alphabet.index(key_char)`.

```js
const commentless_code = __helpers.python.removeComments(code);
const {block_body} = __helpers.python.getBlock(commentless_code, /else/);
assert(block_body.match(/offset\s*=\s*alphabet\.index\s*\(\s*key_char\s*\)/));
```

Код містить недійсний синтаксис та/або недійсні відступи.

```js
({test: () => assert(true) })
```

# --seed--

## --seed-contents--

```py

text = 'Hello Zaira'
custom_key = 'python'

def vigenere(message, key):
    key_index = 0
    alphabet = 'abcdefghijklmnopqrstuvwxyz'
    encrypted_text = ''

    for char in message.lower():

        # Append space to the message
        if char == ' ':
            encrypted_text += char
--fcc-editable-region--
        else:
            # Find the right key character to encode
            key_char = key[key_index % len(key)]
            key_index += 1

--fcc-editable-region--            
            index = alphabet.find(char)
            new_index = (index + offset) % len(alphabet)
            encrypted_text += alphabet[new_index]
    print('plain text:', message)
    print('encrypted text:', encrypted_text)

```
